package sjtu.rfid.rri.services.ale;

import java.util.List;

import javax.jws.WebService;

import sjtu.rfid.rri.services.ale.exception.DuplicateNameException;
import sjtu.rfid.rri.services.ale.exception.ImplementationException;
import sjtu.rfid.rri.services.ale.exception.InUseException;
import sjtu.rfid.rri.services.ale.exception.NoSuchNameException;
import sjtu.rfid.rri.services.ale.exception.TMSpecValidationException;
import sjtu.rfid.rri.services.ale.tm.TMSpec;

@WebService
public interface ALETM {

	public void defineTMSpec(String specName, TMSpec spec)
			throws DuplicateNameException, TMSpecValidationException,
			SecurityException, ImplementationException;

	public void undefineTMSpec(String specName) throws NoSuchNameException,
			InUseException, SecurityException, ImplementationException;

	public TMSpec getTMSpec(String specName) throws NoSuchNameException,
			SecurityException, ImplementationException;

	public List<String> getTMSpecNames() throws SecurityException,
			ImplementationException;

	public String getStandardVersion() throws ImplementationException;

	public String getVendorVersion() throws ImplementationException;

}
